package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/*method 常见方法

 */
public class ReflectDemo06 {
    public static void main(String[] args) throws Exception{
        Class cla = Class.forName("reflect.Person");
        Method method = cla.getMethod("say", String.class);
        String name = method.getName();
        System.out.println("方法名字是： " + name);

        //获取该方法的访问修饰符
        int modifiers = method.getModifiers();
        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("公开方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("私有方法");
                break;
            case  Modifier.PROTECTED:
                System.out.println("受保护的方法");
                break;
            default:
                System.out.println("默认的");
        }
        //获取方法的参数的个数
        int parameterCount = method.getParameterCount();
        System.out.println("个数为" + parameterCount);

        //获取方法参数列表
        Class[] parameterTypes = method.getParameterTypes();
        for (Class parameter : parameterTypes){
            System.out.println("参数有："+ parameter);
        }
    }
}
